package mx.ipn.presentacion.nomina;



import com.trolltech.qt.gui.QDialog;

import mx.ipn.presentacion.ConexionConNegocios;
import mx.ipn.presentacion.nomina.ui.*;
import mx.ipn.to.*;
import com.trolltech.qt.gui.QTableWidgetItem;
import java.util.*;
public class BuscarComp extends QDialog{
	Ui_Buscarcomp mod;
	QTableWidgetItem newItem = null;
	QTableWidgetItem itemid = null;
	java.util.Date fechaini;
	public EmpleadoTO emp;
	EmpleadoTO [] arremp;
	ComprobantePercepcionDescuentoTO [] arrcompro;
	public ComprobantePercepcionDescuentoTO compro;
	GregorianCalendar f1 = new GregorianCalendar();
	java.util.Date fechapago;
	public BuscarComp(){
		mod = new Ui_Buscarcomp();
		mod.setupUi(this);
		mod.tableWidget.setRowCount(1);
		mod.tableWidget.itemClicked.connect(this,"selectPD()");
		mod.pushButton_5.clicked.connect(this, "buscar()");
		mod.buttonBox.accepted.connect(this, "accept()");
        mod.buttonBox.rejected.connect(this, "reject()");
		//this.show();
	}
    public BuscarComp(QDialog parent){
		
	}
	public ComprobantePercepcionDescuentoTO   buscaP(int id){
		ComprobantePercepcionDescuentoTO  des=null;
		for(int i=0;i<arrcompro.length;i++)
		{
			if(arrcompro[i].getIdComprobante() ==id)
			   des=arrcompro[i];
		}
		return des;
	}
	public void selectPD(){
		QTableWidgetItem newItem=null;
		int fila = mod.tableWidget.currentRow();
		itemid = mod.tableWidget.item(fila,0);
		compro= buscaP(Integer.parseInt(itemid.text()));
	}
	public boolean rango(java.util.Date fecha,int mes,int anio)
    {
    	boolean flag=false;
    	f1.setTime(fecha);
    	if(f1.get(GregorianCalendar.MONTH ) ==mes && f1.get(GregorianCalendar.YEAR )==anio)
    		flag=true;
    	return flag;
    }
    public EmpleadoTO  buscaE(int id){
		EmpleadoTO des=null;
		for(int i=0;i<arremp.length;i++)
		{
			if(arremp[i].getIdEmpleado() ==id)
			   des=arremp[i];
		}
		return des;
	}
	public boolean buscarnombre(String nombre){
		boolean nom=false;
		if(arremp!=null){
		for(int i=0;i<arremp.length;i++)
		{
			if(arremp[i].getPersonaTO().getNombre().compareToIgnoreCase(nombre)==0)
			   nom=true;
		}
	    }
		return nom;
	}
	public void buscar(){
		int id=0;
		int k=0;
		try
		{
				f1.set(mod.dateEdit.date().year(),(mod.dateEdit.date().month()-1),mod.dateEdit.date().day());
	            fechaini=f1.getTime();
				mod.tableWidget.clearContents();
				arrcompro = (ComprobantePercepcionDescuentoTO[])ConexionConNegocios.invocaServicio("selectComprobantePercepcionDescuento",ComprobantePercepcionDescuentoTO[].class);
				arremp = (EmpleadoTO[])ConexionConNegocios.invocaServicio("buscarEmpleadosActivos",EmpleadoTO[].class); 
		        if(arrcompro!=null){
					mod.tableWidget.setRowCount(arrcompro.length);
			       for(int i=0;i<arrcompro.length;i++)
			        	mod.tableWidget.insertRow(i);
			       for(int j=0;j<arrcompro.length;j++){
				       	if(rango(arrcompro[j].getFechaPago(),(mod.dateEdit.date().month()-1),mod.dateEdit.date().year())){
					       	newItem = new QTableWidgetItem(String.valueOf(arrcompro[j].getIdComprobante()));
				    	    mod.tableWidget.setItem(k,0,newItem);
				    	    newItem = new QTableWidgetItem(String.valueOf(arrcompro[j].getFechaPago()));
				    	    mod.tableWidget.setItem(k,1,newItem);
				    	    newItem = new QTableWidgetItem(String.valueOf(arrcompro[j].getSueldoBase()));
				    	    mod.tableWidget.setItem(k,2,newItem);
				    	    if(arremp!=null){
				    	    emp =  buscaE(arrcompro[j].getIdEmpleado());
				    	       newItem = new QTableWidgetItem(String.valueOf(emp.getIdEmpleado()));
				    	       mod.tableWidget.setItem(k,3,newItem);
				    	       newItem = new QTableWidgetItem(String.valueOf(emp.getPersonaTO().getNombre()));
				    	       mod.tableWidget.setItem(k,4,newItem);
				    	     }
				    	  k++;
			    	   }
			       }
			    }
	    }catch(Exception e){}
	}
}